Communication networks include a number of devices, such as routers, which are interconnected to one or more other devices in the network so that a message may be transmitted from a source to a destination. Oftentimes, a router in a network may be connected with another router in the network over an interface having multiple ports or links so that the interface can support bandwidth requirements or particular data rates.
For instance, in the example of FIG. 1, Router A has an interface 10 with a plurality of ports or links 12 which connect with Router B in order to pass data from Router A to Router B, in this example. When a packet from Router A needs to be transmitted to Router B, Router A determines which port of the plurality of ports 12 should be used to transmit the packet to Router B. Conventionally, a hash operation or function may be used to generate an index into the plurality of ports of Router A. For instance, a hashing function may be performed using the destination address of the packet to generate an index, and unneeded bits may be masked off in order to form an index which is used to select one of the plurality of ports 12 of the interface 10 of Router A upon which to transmit the packet.
As recognized by the present inventors, such a process is a static process which is not sensitive to the amount of traffic being handled by particular ports 12 of Router A. In other words, if an amount of traffic builds up on one or more ports 12 of Router A, the above-described hash function does not account for such traffic build-ups in determining which port of interface 10 should be utilized to transmit a packet. As recognized by the present inventors, this problem may be compounded when adjacent routers are of the same make and model and use the same hashing function, such that a build-up of traffic on a particular port in Router A may be propagated and compounded onto a corresponding port of Router B, which degrades the overall performance of Router A and Router B in the network.
Further, as recognized by the present inventors, TCP/IP performance may be degraded if the packet order is disrupted, for example, if Router A were to use a random number algorithm to select a port from the plurality of ports of the interface upon which to transmit a packet.
As recognized by the present inventors, what is needed is a system and method for selecting an output port or link of an interface of a router to transmit a packet upon so that each port of the interface is being used in a balanced and substantially even manner.
It is against this background that various embodiments of the present invention were developed.